package com.situ.controller;

import com.situ.bean.Cart;
import com.situ.bean.Result;
import com.situ.bean.User;
import com.situ.service.ICartService;
import com.situ.util.LayData;
import com.situ.util.SYS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

@Controller
public class CartController {
    @Autowired
    ICartService cartService;
    @PostMapping("/updateCart") // 使用 @PostMapping 明确指定 POST 请求
    @ResponseBody // 返回 JSON 数据
    public List<Cart> updateCart(@RequestBody List<Cart> updateCart,HttpSession session) { // 使用 @RequestBody 绑定 JSON 数据
        System.out.println("修改购物车信息");
         System.out.println(updateCart.toString());
         User user =(User) session.getAttribute(SYS.UPLOAD_USER);
      List<Cart> carts=new ArrayList<Cart>();
        // 调用服务层处理数据
      for(int i=0;i <= updateCart.size()-1;i++){
          cartService.updatecart(updateCart.get(i));
            carts=cartService.getcart(user);
      }
       //返回jason数据
     return carts;
    }

    @RequestMapping ("/add-to-cart") // 使用 @PostMapping 明确指定 POST 请求
    @ResponseBody // 返回 JSON 数据
    public LayData addtocart(@RequestBody Cart cart , HttpSession session) { // 使用 @RequestBody 绑定 JSON 数据
        //穿过来的cart只要 product id
        LayData layData=new LayData();
          System.out.println("需要查询的cart为"+cart);
        User user=(User)session.getAttribute(SYS.UPLOAD_USER);
           cart.setUserid(user.getId());
           System.out.println("需要查询的user为"+user);
           //查询到账户的情况下
        if(cartService.getcartbypuId(cart)!=null) {

            Cart Cartnow = cartService.getcartbypuId(cart);
            Cartnow.setUserid(user.getId());
            System.out.println("查询到的cart为" + cart);
            // 调用服务层处理数据
            Cartnow.setNumber(1 + Cartnow.getNumber());

            if (cartService.updatecart(Cartnow)) {
                System.out.println("修改成功");
                layData.setCode(0);
                layData.setMsg("success");
            } else {
                System.out.println("修改失败");
            }
        }else{
            cart.setNumber(1);
            cartService.addcart(cart);

        }


      return layData;
    }




    @RequestMapping("checkout")
    @ResponseBody
    public LayData checkout(@RequestBody Result result,HttpSession session) {
        LayData layData=new LayData();
        System.out.println("支付界面"+result.toString());
        if(result.getUserid()!=0||(User)session.getAttribute(SYS.UPLOAD_USER)!=null) {
            result.setUserid(((User)session.getAttribute(SYS.UPLOAD_USER)).getId());
            session.setAttribute(SYS.Result,result);

            layData.setCode(0);
           layData.setMsg("success");
        }else{
            layData.setCode(1);
            layData.setMsg("fail");
        }


       return layData;

    }




}
